package com.xiaozheng.ui;

import com.xiaozheng.dao.AccountDao;
import com.xiaozheng.service.AccountService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @Package: com.xiaozheng.ui
 * @ClassName: ClientDecoupling
 * @Author: 小政同学    QQ:xiaozheng666888@qq.com
 * @CreateTime: 2020/9/19 19:07
 * @What_is_this_file_for: 模拟表现层，用于调用业务层
 * @Description: 描述
 */
public class ClientDecoupling {
    /**
     * 获取Spring的IOC核心容器，并根据id获取对象
     * @param args
     */
    public static void main(String[] args) {
        /**
         * ApplicationContext的三个常用实现类，
         * ClassPathxmLApplicationContext:它可以加载类路径下的配置文件，要求配置文件必须在类路径下。不在的话，加载不了.
         * FileSystemXmLApplicationContext:它可以加载磁盘任意路径下的配置文件(必须有访问权限)
         * AnnotationConfigApplicationContext:它是用于读取注解创建容器的，是明天的内容。
         */
        //1.获取核心容器对象
        ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
        AccountService as = (AccountService) ac.getBean("accountService");
        AccountDao ad = ac.getBean("accountDao", AccountDao.class);
        as.saveAccountService();
        ad.saveAccountService();
    }
}
